#include "gyak8.hpp"
#include <sstream>
#include <string>

using namespace std;

NagySzam:: NagySzam(long long int kezdetiertek)
{
std::stringstream sor;
sor<<kezdetiertek;
sor>>_sz;



}
NagySzam::NagySzam(const NagySzam& ns)
{
    _sz=ns._sz;
}

string NagySzam::get_string_form()
{
    return _sz;
}

//a hosszabb, vagy egyenlo hosszusagu b-vel

string ossze_ad (string a,string b)
{string c="";
bool carry_bit=false;
for(int i=0;i<a.size();i++)
{
    char karakter=0;
    if(carry_bit){karakter+=1; carry_bit=false;}
    karakter+=a[a.size()-1-i];
    if(i<b.size()) {karakter+=b[b.size()-1-i];karakter-=48;}
    if (karakter>57) {karakter-=10; carry_bit=true;}
    c+=karakter;
}
string d="";
if (carry_bit) c+='1';
for(int i=0;i<c.size();i++)
{
    d+=c[c.size()-1-i];
}
return d;
}

NagySzam & NagySzam :: operator+=(const NagySzam& ns)
{
    if (_sz.length()>ns._sz.length())
    {
        _sz=ossze_ad(_sz,ns._sz);
    }
    else
    {
        _sz=ossze_ad(ns._sz,_sz);
    }
}

NagySzam & NagySzam :: operator=(const NagySzam& ns)
{
_sz=ns._sz;
    //return s;
}

ostream & operator<<(std::ostream & out, NagySzam& ns)
{
    out<<ns.get_string_form();
    return out;
}
